package orderoid.formulaire;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.concurrent.ExecutionException;

import orderoid.singleton.SingletonClient;
import orderoid.soap.business.webRechercherCommandeFromClient;
import orderoid.soap.classeCommune.Commande;
import orderoid.soap.classeCommune.Menu;
import orderoid.soap.classeCommune.Produit;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.ListView;
import android.widget.SimpleAdapter;

public class OrderoidHistoriqueActivity extends Activity
{
	private ListView	listHistorique;
	

	/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle savedInstanceState)
	{
		super.onCreate(savedInstanceState);
		setContentView(R.layout.historique);

		// Recuperation de la listview creee dans le fichier main.xml
		listHistorique = (ListView) findViewById(R.id.listHistorique);

		// Creation de la ArrayList qui nous permettra de remplire la listView
		ArrayList<HashMap<String, String>> listItem = new ArrayList<HashMap<String, String>>();

		// On recupere la liste des commandes pour un client donnée
		webRechercherCommandeFromClient ws = new webRechercherCommandeFromClient();
		
		// appel du web service
		List<Commande> listCommande = new ArrayList<Commande>();

		try
		{
			listCommande = ws.execute(Integer.toString(SingletonClient.getInstance().getClient().getIdClient())).get();
		} catch (InterruptedException e)
		{
			listCommande = null;	
			e.printStackTrace();
		} catch (ExecutionException e)
		{
			listCommande = null;
			e.printStackTrace();
		}		
		
		// On declare la HashMap qui contiendra les informations pour un item
		HashMap<String, String> map;

		// on traite la liste de produit dans un premier temps
		for (Commande c : listCommande)
		{
			map = new HashMap<String, String>();

			double		prixTotal = 0.0;
			
			String status;
			switch (Integer.valueOf(c.getIdStatut().getLibelle()))
			{
				case 1:
				{
					status = "En attente de traitement";
					break;
				}
				case 2:
				{
					status = "En cours de traitement";
					break;
				}
				case 3:
				{
					status = "Prête";
					break;
				}
				case 4:
				{
					status = "En cours de livraison";
					break;
				}
				case 5:
				{
					status = "Traitée";
					break;
				}
				default:{
					status = "Traitée";
				}
			}

			map.put("titre", c.getDateLivraison() + " état :" + status);
			
			String listeItem = new String();
			// on traite la liste de produit dans un premier temps
			for (Produit p : c.getListProduit())
			{
				listeItem += p.getNom() + ";";
				prixTotal += p.getMontant();

			}

			// ensuite on s'occupe des menu
			for (Menu m : c.getListMenu())
			{
				listeItem += m.getNom() + ";";
				prixTotal += m.getMontant();

			}
			
			map.put("description", listeItem);
			map.put("prix_produit", Double.toString(prixTotal) + "€");

			// que l'on stocke dans une array list d'affichage
			listItem.add(map);
		}

		// Creation d'un SimpleAdapter qui se chargera de mettre les items present dans notre list (listItem) dans la vue affichageitem
		SimpleAdapter mSchedule = new SimpleAdapter(this.getBaseContext(), listItem, R.layout.affichage_historique, new String[] { "titre",
			"description","prix_produit"}, new int[] { R.id.titre, R.id.description,R.id.prix_total_comd });

		// On attribut � notre listView l'adapter que l'on vient de cr�er
		listHistorique.setAdapter(mSchedule);
	}

	public void validerMonPanier(View view)
	{
			// lance la fenetre suivante
			Intent main = new Intent(this, OrderoidSommaireActivity.class);
			startActivity(main);
	}
}